/**
 * 
 */
package com.gwcloud.leetcode.interview100;

import java.util.HashMap;

import com.gwcloud.leetcode.common.datastructure.Node138;

/**
 * @ClassName   : Leetcode0138 
 * @author      : ganwei 
 * @date        : 2020年5月26日
 * @Description : Leetcode0138 复制带随机指针的链表
 */
public class Leetcode0138 {
    /**
     * -解题思路，HashMap
     */
	public Node138 copyRandomList(Node138 head) {
		if(head == null){
			return null;
		}
		HashMap<Node138, Node138> map = new HashMap<Node138, Node138>();
		Node138 p = head;
		while(p != null){
			map.put(p, new Node138(p.val));
			p = p.next;
		}
		p = head;
		while(p != null){
			map.get(p).random = map.get(p.random);
			map.get(p).next = map.get(p.next);
			p = p.next;
		}
        return map.get(head);
    }
    /**
     * -主函数,复制链表
     */
    public static void main(String[] args){
    	
    }
}
